home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / X-Demos and Utilities / (c)x1.d64 / c64 cdn demo.c (.txt) < prev    next >
Commodore BASIC  |  2008-11-26  |  7KB  |  226 lines

  1. 0 REM COMMODORE-64 DEMO PROGRAM
  2. 1 REM DAVID BEREZOWSKI / COMMODORE CANADA / APRIL 82
  3. 2 REM WITH APOLOGIES TO THE CODE!
  4. 3 REM C64 MAIN DEMO PROGRAM
  5. 5 IF F=0 THEN F=1:LOAD "SPRITE.DATABIN.D",8,1
  6. 6 IF F=1 THEN F=2:LOAD "BOUNCE M/C.D",8,1
  7. 10 REM C64 DEMO TITLE
  8. 15 POKE13*4096+33,6:REM BLUE BACK
  9. 16 POKE13*4096+32,13:REM LT GREEN FORE
  10. 20 C$="[144][159][156][158]"
  11. 30 PRINT "[147]";CHR$(142):PRINT:PRINT:PRINT
  12. 40 A$="I N T R O D U C I N G":GOSUB 140
  13. 50 PRINT:PRINT:A$="[159]THE":GOSUB 140
  14. 60 PRINT:PRINT:A$="[158]NEW":GOSUB 140
  15. 70 PRINT:PRINT
  16. 80 A$="[156]COMMODORE-64":GOSUB 140
  17. 90 PRINT:PRINT:A$="PERSONAL COMPUTER":GOSUB 140
  18. 100 FOR Z=1 TO 3
  19. 110 FORX=1 TO 7:A$=MID$(C$,X,1)+MID$(A$,2):PRINT"[145]";:GOSUB 140
  20. 120 FOR Y=1 TO 100:NEXT Y,X,Z
  21. 125 FOR Z=1 TO 500:NEXT Z:SYS 28672:REM CALL BOUNCE
  22. 130 POKE198,0:GOSUB 5000:GOTO 200:REM LINK TO C64 DESCRIPTION
  23. 140 REM CENTRE A$ ON SCREEN
  24. 150 PRINT SPC((40-LEN(A$)-1)/2);A$
  25. 160 RETURN
  26. 200 REM C64 DESCRIPTION
  27. 210 PRINT"[147][155]";CHR$(14):C=5
  28. 220 GOSUB 450:GOSUB 350:GOSUB 240:GOSUB 700
  29. 230 GOTO 1000:REM LINK TO C64 VIC-MAN EATS APPLE
  30. 240 PRINT "[147][146] [208][197][210][201][208][200][197][210][193][204][211] :"
  31. 250 PRINT
  32. 260 PRINT SPC(C)"- [214][201][195] [195]ASSETTE [196]ECK":PRINT
  33. 270 PRINT SPC(C)"- [214][201][195] [196]ISK (170K)":PRINT
  34. 280 PRINT SPC(C)"- [214][201][195] [208]RINTER (80 COLUMNS)":PRINT
  35. 290 PRINT SPC(C)"- [214][201][195] [205]ODEM (DIRECT CONNECT)":PRINT
  36. 300 PRINT SPC(C)"- [195][194][205]/[201][197][197][197] [208]RODUCTS"
  37. 310 PRINT SPC(C)"  (WITH [201][197][197][197] CARTRIDGE)":PRINT
  38. 320 PRINT SPC(C)"- [214][201][195] [202]OYSTICKS":PRINT
  39. 330 PRINT SPC(C)"- [214][201][195] [199]AME [208]ADDLES":PRINT
  40. 340 GOSUB 590:RETURN
  41. 350 REM EXPANSION
  42. 360 PRINT "[147]":C=5
  43. 370 PRINT " [197][216][208][193][206][211][201][207][206] :":PRINT
  44. 380 PRINT SPC(C);"- [205]ACHINE [204]ANGUAGE [205]ONITOR":PRINT
  45. 390 PRINT SPC(C);"- [211]UPER [197]XPANDER":PRINT
  46. 400 PRINT SPC(C);"- [201][197][197][197] CARD ":PRINT
  47. 410 PRINT SPC(C);"- [208]ROGRAMMERS [193]ID":PRINT
  48. 420 PRINT SPC(C);"- [218]-80 [195]ARD ([195][208]/[205])":PRINT
  49. 430 PRINT SPC(C);"- [195][194][205] [194][193][211][201][195] 4.0":PRINT
  50. 435 PRINT SPC(C);"- [208][197][212] [197]MULATOR CARTRIDGE":PRINT
  51. 440 GOSUB 590:RETURN
  52. 450 REM FEATURES
  53. 460 PRINT "[147] [198][197][193][212][213][210][197][211] :":C=3:PRINT
  54. 470 PRINT SPC(C);"- GREAT [211][208][210][201][212][197] GRAPHICS":PRINT
  55. 480 PRINT SPC(C);"- [211][201][196] SOUND SYNTHESIZER CHIP":PRINT
  56. 490 PRINT SPC(C);"- 64[203] [210][193][205]":PRINT
  57. 500 PRINT SPC(C);"- 38[203] [210][193][205] FOR [194][193][211][201][195]":PRINT
  58. 510 PRINT SPC(C);"- POWERFUL [208][197][212] [194][193][211][201][195] 2.0":PRINT
  59. 520 PRINT SPC(C);"- [200]I-[210]ESOLUTION GRAPHICS (320 X 200)
  60. 530 [153] [166]C);"  (64,000 INDIVIDUAL PIXELS)":[153]
  61. 540 [153] [166]C);"- 16 COLORS (STOP   OPEN CLR   SYS REM VERIFY DEF POKE PRINT# PRINT CONT LIST WAITLIST)":[153]
  62. 550 [153] [166]C);"- (null)(null)(null)VAL(null) AND LOWER CASE":[153]
  63. 560 [153] [166]C);"- 40 COLUMN (null) 25 LINE DISPLAY":[153]
  64. 570 [153] [166]C);"- USER PROGRAMMABLE CHARACTERS"
  65. 580 [141] 590:[142]
  66. 590 [143] DELAY
  67. 600 [153]"CHR$-CHR$(null)/(null)-(null)(null)(null)(null)";
  68. 605 DD[178]2000:[129] Y[178]1 [164] DD
  69. 610 [161] A$:[139] A$[178]"" [167] [130] Y:[142]
  70. 620 [139] A$[178]"G" [167] Y[178]DD:[130] Y:[142]
  71. 630 [139] A$[179][177]"S" [167] 610
  72. 635 [153]"(null)(null)(null)(null)(null)VALSTR$WAIT    ";
  73. 640 [161] A$:[139] A$[179][177]"G" [167] 640
  74. 645 [153]"WAIT       ";
  75. 650 Y[178]DD:[130] Y:[142]
  76. 700 C[178]3:[143] SID CHIP DESCRIPTION
  77. 710 [153] "LOADWAIT (null)RIGHT$STR$ - SOUND SYNTHESIZER CHIP!"
  78. 730 [153]" * 3 INDEPENDENT VOICES, EACH WITH:"
  79. 740 [153] [166]C);"- 9 OCTAVES RANGE."
  80. 750 [153] [166]C);"- 4 WAVEFORMS: SAWTOOTH, TRIANGLE,
  81. 755 PRINT SPC(C);"  VARIABLE WIDTH PULSE, AND NOISE.
  82. 760 [153] [166]C);"- AMPLITUDE MODULATION.
  83. 770 PRINT SPC(C);"- CONTROL OF ATTACK, DECAY, SUSTAIN,
  84. 775 [153] [166]C);"  AND RELEASE OF EACH VOICE.
  85. 780 PRINT SPC(C);"- PROGRAMMABLE LOW, HIGH,
  86. 785 [153] [166]C);"  AND BAND PASS FILTERS.
  87. 790 PRINT SPC(C);"- MASTER VOLUME CONTROL.
  88. 795 [141] 590:[142]
  89. 1000 [143]
  90. 1010 [156]:S[178]2:[153][199](14)
  91. 1020 [143] GREAT SPRITE GRAPHICS FEATURING.
  92. 1030 [143] ARCADE-GAME EFFECTS
  93. 1040 G[178]13[172]4096:[151]G[170]32,13:[151]G[170]33,0
  94. 1050 [153]"LOAD (null)(null)(null)RIGHT$(null)VAL CHR$RAPHICS FEATURING...
  95. 1060 REM PA=SPRITE PAGE DEF.
  96. 1070 REM SP=SPRITE #
  97. 1080 REM SC=SPRITE COLOUR
  98. 1090 REM                                         *** START ***
  99. 1100 PA=150:SP=6:SC=7:GOSUB 1340
  100. 1110 PA=151:SP=3:SC=2:GOSUB 1340
  101. 1120 PA=152:SP=4:SC=9:GOSUB 1340
  102. 1130 PA=153:SP=5:SC=14:GOSUB 1340
  103. 1140 PA=154:SP=2:SC=7:GOSUB 1340
  104. 1150 PA=155:SP=2:SC=7:GOSUB 1340
  105. 1160 PA=156:SP=2:SC=7:GOSUB 1340
  106. 1170 POKEG+28,8+16+32+64
  107. 1180 POKEG+37,5:POKEG+38,8:REM GRN,ORNGE
  108. 1190 PRINT" [193][210][195][193][196][197]-[199][193][205][197] [197][198][198][197][195][212][211]!"
  109. 1200 OX=150:OY=90
  110. 1210 CC=CC+1:IF CC>2 THEN GOSUB 5000:GOTO 2000:REM LINK TO C64 SUN PICTURE
  111. 1220 X=OX:Y=OY:SP=6:GOSUB1310
  112. 1230 X=OX:Y=OY+21:SP=3:GOSUB1310
  113. 1240 X=OX:Y=OY+25:SP=4:GOSUB1310
  114. 1250 X=OX:Y=OY+29:SP=5:GOSUB1310
  115. 1260 X=0:Y=103-GZ*10:SP=2:GOSUB1310:POKEG+21,124:POKEG+23,4*GZ:POKEG+29,4*GZ
  116. 1270 FORI=0TO136STEPS:POKEG+4,I:POKE2042,154+C:C=C+1+(C=2)*3:NEXT
  117. 1280 POKEG+21,4:FORI=137TO255STEPS:POKEG+4,I:POKE2042,154+C:C=C+1+(C=2)*3
  118. 1290 NEXT:FORI=1TO1000:NEXT:POKEG+21,0:GZ=1-GZ:GOTO1200
  119. 1300 END
  120. 1310 V1=XAND255:V2=255:V3=2^SP:IFX<256THENV2=255-2^SP:V3=0
  121. 1320 V4=(PEEK(G+16)ORV3)ANDV2:POKE G+SP*2+1,Y:POKE G+SP*2,V1:POKE G+16,V4
  122. 1330 RETURN
  123. 1340 G=13*4096
  124. 1350 POKE2040+SP,PA
  125. 1360 POKEG+39+SP,SC
  126. 1370 RETURN
  127. 1380 I=1:J=1:X=100:Y=100
  128. 2000 CLR:G=13*4096:POKE G+32,13
  129. 2010 REM SPRITE GRAPHICS FEATURING...
  130. 2020 REM REAL-TIME ANIMATION
  131. 2030 PRINT"[147]";CHR$(142);"[144] SPRITE GRAPHICS FEATURING..."
  132. 2040 PRINT" REAL-TIME ANIMATION!
  133. 2045 [153]"  (ANIMATION DONE BY 8 LINES OF BASIC) "
  134. 2050 [143] PA=SPRITE PAGE DEF.
  135. 2060 [143] SP=SPRITE #
  136. 2070 [151] G[170]21,0:[143] DISABLE ALL SPRITES
  137. 2080 PA[178]157:SP[178]5:X[178]0:Y[178]0:[141] 2420:[141] 2400:[143] SUN
  138. 2090 PA[178]158:SP[178]2:X[178]0:Y[178]0:[141] 2420:[141] 2400:[143] WHITE CLOUD
  139. 2100 [151]G[170]23,20:[151]G[170]29,20
  140. 2110 PA[178]159:SP[178]3:X[178]0:Y[178]0:[141] 2420:[141] 2400:[143] PLANE
  141. 2120 PA[178]158:SP[178]4:X[178]0:Y[178]0:[141] 2490:[141] 2400:[143] GRAY CLOUD
  142. 2130 [151]G[170]39[170]5,7:[143] YELLOW SUN
  143. 2140 [151]G[170]39[170]2,1:[143] WHITE CLOUD
  144. 2150 [151]G[170]39[170]3,2:[143] RED PLANE
  145. 2160 [151]G[170]39[170]4,15:[143] GRAY CLOUD
  146. 2170 [151]G[170]28,0:[143] MULTI-COLOR MODE OFF
  147. 2180 [151]G[170]27,32[170]16:[143] SUN & GRAY CLOUD BEHIND TEXT PRIORITY
  148. 2185 [151]G[170]21,4[170]8[170]16[170]32:[143] ENABLE ALL SPRITES
  149. 2190 [137]2290
  150. 2200 WC[178]WC[170]C0:SU[178]SU[170]C1:PL[178]PL[170]C2:GC[178]GC[171]C0
  151. 2210 [151]G1,WC:[143] UPDATE WHITE CLOUD X POS
  152. 2220 [151]G2,SU[170]25:[143] UPDATE SUN Y POS
  153. 2230 [139]SU[177]C3[175]SU[179]C5[175]F[167][151]G3,D(C4[171](C5[171]SU)[173]C6):[137]2250
  154. 2240 [139]SU[177]C5[175]F[167]2600
  155. 2250 [151]G4,PL[175]C7:[151]G5,[171]C8[172](PL[177]C7)
  156. 2260 [151]G6,GC:[143] UPDATE GRAY CLOUD X POS
  157. 2270 C[178]C[170]C2:[139]C[179]C9[167]2200
  158. 2280 [129]X[178]1[164]1500:[130]X
  159. 2285 [141] 5000:[137] 10:[143] RESET VIDEO CHIP AND LOOP
  160. 2290 [156]:G[178]13[172]4096:G1[178]G[170]4:G2[178]G[170]11:G3[178]G[170]33:G4[178]G[170]6:G5[178]G[170]16:G6[178]G[170]8:F[178][171]1
  161. 2300 C[178]0:C0[178].5:C1[178].205:C2[178]1:C3[178]50:C4[178]6:C5[178]71:C6[178]3.5:C7[178]255:C8[178]8:C9[178]395
  162. 2310 [151]G[170]44,7:[143] YELLOW SUN
  163. 2320 WC[178]50:[151] G[170]4,WC:[151]G[170]5,70:[143] WHITE CLOUD
  164. 2330 PL[178]0:[151] G[170]6,PL:[151]G[170]7,90:[143] PLANE
  165. 2340 GC[178]245:[151] G[170]8,GC:[151]G[170]9,75:[143] GREY CLOUD
  166. 2350 SU[178]10:[151] G[170]10,90:[151]G[170]11,SU:[143] SUN
  167. 2360 [151]G[170]33,14
  168. 2370 [141] 3150:[141] 3270
  169. 2390 [137] 2200
  170. 2400 [151] G[170]SP[172]2,X:[151] G[170]SP[172]2[170]1,Y
  171. 2410 [142]
  172. 2420 [143]
  173. 2490 [151]2040[170]SP,PA
  174. 2510 [142]
  175. 2600 [151]2045,160:[151]G[170]44,1:SU[178]78:[151]G[170]11,SU[170]25:[151]G[170]10,175:C1[178][171]C1[171]C1:F[178]0
  176. 2610 [137] 2250
  177. 3150 [153]"":[143] DRAW MOUNTAIN RANGE
  178. 3160 [153]"        STEP(null)"
  179. 3170 [153]"  STEP(null)WAIT   STEP  (null)WAIT         STEP(null)WAIT"
  180. 3180 [153]" STEP   (null)STEP    (null)WAIT       STEP  (null)"
  181. 3190 [153]"STEP    (null)      (null)STEP(null)WAIT   STEP    (null)
  182. 3200 PRINT"    [206]       [206]  [223][146] [169]      [223]"
  183. 3210 PRINT"           [206]    [205]                       ";
  184. 3220 PRINT"                                        ";
  185. 3230 PRINT"                                        ";
  186. 3240 PRINT"                                        ";
  187. 3250 PRINT"                                        ";
  188. 3260 RETURN
  189. 3270 REM DARK SKY ARRAY
  190. 3280 D(0)=14:D(1)=14:D(2)=6
  191. 3290 D(3)=12:D(4)=12:D(5)=11:D(6)=11
  192. 3300 RETURN
  193. 4000 REM EXTENDED COLOR MODE
  194. 4010 G=13*4096
  195. 4020 PRINT"[147]"
  196. 4030 PRINT SPC(10)"[197][216][212][197][206][196][197][196] [195][207][204][207][213][210] [205][207][196][197]!"
  197. 4040 FOR X=0 TO 255
  198. 4050 POKE1024+160+X,X:NEXT X
  199. 4060 PRINT""
  200. 4070 A$="[201]N THIS MODE WE CAN CHANGE THE CHARACTER":GOSUB 4210
  201. 4080 A$="COLOUR OF ANY BLOCK OF 64 CHARACTERS    ":GOSUB 4210
  202. 4090 A$="INDEPENDENT OF THE OTHER 192 CHARACTERS.":GOSUB 4210
  203. 4100 PRINT:A$="[215][193][212][195][200]!...":GOSUB 4210
  204. 4110 FOR Y=0 TO 100:NEXT Y
  205. 4120 POKEG+17,PEEK(G+17)OR64
  206. 4130 FOR Z=1 TO 30
  207. 4140 R=RND(1)*4:REM PICK A RANDOM BACKGROUND REGISTER
  208. 4150 C=RND(1)*16:REM PICK A RANDOM COLOR
  209. 4160 POKEG+33+R,C
  210. 4170 FOR Y=0 TO 199:NEXT Y,Z
  211. 4180 POKEG+17,PEEK(G+17)AND191
  212. 4190 END:REM LOAD NEXT PROGRAM
  213. 4200 END
  214. 4210 REM OUTPUT A$
  215. 4220 FOR X=1 TO LEN(A$)
  216. 4230 PRINT MID$(A$,X,1);
  217. 4240 FOR Y=0 TO 49:NEXT Y,X:RETURN
  218. 5000 G=13*4096:REM FIX CHIP
  219. 5005 PRINT"[147]":POKEG+21,0:RESTORE
  220. 5010 FOR X=0 TO 16:POKEG+X,0:NEXT
  221. 5020 FOR X=17 TO 46
  222. 5030 READY:POKEG+X,Y:NEXT
  223. 5040 RETURN
  224. 5050 DATA 27,175,226,228,0,200,0,21,121,240,0,0,0,0,0,254,246,241,242,243,244
  225. 5060 DATA 240,241,242,243,244,245,246,247,252
  226.